<?php

class SiteController extends Controller
{
	public $layout='column1';

	/**
	 * Declares class-based actions.
	 */
	public function actions()
	{
		return array(
			// captcha action renders the CAPTCHA image displayed on the contact page
			'captcha'=>array(
				'class'=>'CCaptchaAction',
				'backColor'=>0xFFFFFF,
			),
			// page action renders "static" pages stored under 'protected/views/site/pages'
			// They can be accessed via: index.php?r=site/page&view=FileName
			'page'=>array(
				'class'=>'CViewAction',
			),
		);
	}

	/**
	 * This is the action to handle external exceptions.
	 */
	public function actionError()
	{
	    if($error=Yii::app()->errorHandler->error)
	    {
	    	if(Yii::app()->request->isAjaxRequest)
	    		echo $error['message'];
	    	else
	        	$this->render('error', $error);
	    }
	}

	/**
	 * Displays the contact page
	 */
	public function actionContact()
	{
		$model=new ContactForm;
		
		if(isset($_POST['ContactForm']))
		{
			
			$model->attributes=$_POST['ContactForm'];

			$texto = $this->limpaTexto($_POST['ContactForm']['texto']);
			$words = str_word_count($texto, 1); //explode(" ", );
			
			$listemotion = array();
			if ($_POST['ContactForm']['lang'] ==1){
				$lang = 'EN';
			}else {
				$lang = 'PT';
			}
			$dataemotion = Yii::app()->db->createCommand()
							->select("id, name")
							->from('tbl_emotion e')
							->where("e.lang = '".$lang."' ")
							->queryAll();
			
			foreach ($dataemotion as $key =>$emot){
				//print_r($emot);
				$emot['qtd'] = 0;
				$listemotion[$emot['id']] = $emot;
			}
		//	print_r($listemotion);
			foreach ($words as $id => $word){
				if ($_POST['ContactForm']['lang'] ==1){
						if (!$this->stopword($word, 1)){
							$sword= CPorterStemmer::Stem($word);
							$stem_words[] = $sword;
							//print_r($sword);
							$emotions = Yii::app()->db->createCommand()
							->select('word, emotion_id')
							->from('tbl_word w')
							->join('tbl_emotion e', 'e.id=w.emotion_id')
							->where("(trim(upper(lemma)) like trim(upper(:word)) OR trim(upper(word)) like trim(upper(:word))) and e.lang = 'EN' ", array(':word'=>$sword))
							->queryRow();
						
							if (!empty($emotions)){
								$emotion_id = $emotions['emotion_id'];
								$listemotion[$emotion_id]['qtd'] = $listemotion[$emotion_id]['qtd'] +1;
							}
						}
				}else if($_POST['ContactForm']['lang'] ==2){
					if (!$this->stopword($word,2)){
						$sword = CPtPorterStemmer::Stem($word);
						$stem_words[] = $sword;
						//print_r($sword." ");
						$emotions = Yii::app()->db->createCommand()
						->select('word, emotion_id')
						->from('tbl_word w')
						->join('tbl_emotion e', 'e.id=w.emotion_id')
						->where("(trim(upper(lemma)) like trim(upper(:word)) OR trim(upper(word)) like trim(upper(:word))) and e.lang = 'PT' ", array(':word'=>$sword))
						->queryRow();
												
						if (!empty($emotions)){
							$emotion_id = $emotions['emotion_id'];
							$listemotion[$emotion_id]['qtd'] = $listemotion[$emotion_id]['qtd'] +1;
						}		
						
					}
				}else{				
					if (!$this->stopword($word, 3)){
						$sword = CEsStemmer::Stem($word);
						$stem_words[] = $sword;
						//print_r($sword);
						//echo(" ");
					}
				}
			}
		//print_r($listemotion);
		$session=new CHttpSession;
		$session->open(); // Yii::app()->session['myVar']
		Yii::app()->session['listemotion']=$listemotion;
		
		//$this->render('result',array('model'=>$model));
		//$this->redirect(array('result','model'=>$model));
			
		$this->redirect('result');
	 //	exit;
		}
		else{
			//$this->render('contact',array('model'=>$model));
		}
		
		$this->render('contact',array('model'=>$model));
	}

	/**
	 * Displays the login page
	 */
	public function actionLogin()
	{
		if (!defined('CRYPT_BLOWFISH')||!CRYPT_BLOWFISH)
			throw new CHttpException(500,"This application requires that PHP was compiled with Blowfish support for crypt().");

		$model=new LoginForm;

		// if it is ajax validation request
		if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}

		// collect user input data
		if(isset($_POST['LoginForm']))
		{
			$model->attributes=$_POST['LoginForm'];
			// validate user input and redirect to the previous page if valid
			if($model->validate() && $model->login())
				$this->redirect(Yii::app()->user->returnUrl);
		}
		// display the login form
		$this->render('login',array('model'=>$model));
	}
	public function actionResult()
	{
		$model=new ContactForm;
	// 		print_r($_POST);
		// 		echo("passou");
		// 		exit;
		if(isset($_POST['ContactForm']))
		{
			$model->attributes=$_POST['ContactForm'];
			/*print_r($_POST); echo(" heloo ááá");
				print_r("<br> dec 1:".utf8_decode($_POST['ContactForm']['texto']));
			print_r("<br> enc 2:".utf8_encode($_POST['ContactForm']['texto']));
			print_r("<br> sem 3:".($_POST['ContactForm']['texto']));*/
	
			//$text_dec= utf8_decode($_POST['ContactForm']['texto']);
			$texto = $this->limpaTexto($_POST['ContactForm']['texto']);
			$words = explode(" ", $texto);
			//echo("heloo2");
			print_r($words);
			if ($_POST['ContactForm']['lang'] ==1){
				foreach ($words as $id => $word){
					if (!$this->stopword($word, 1)){
						$sword= CPorterStemmer::Stem($word);
						$stem_words[] = $sword;
						print_r($sword);
						echo(" ");
					}
				}
			}else if($_POST['ContactForm']['lang'] ==2){
				foreach ($words as $id => $word){
					if (!$this->stopword($word,2)){
						$sword = CPtPorterStemmer::Stem($word);
						$stem_words[] = $sword;
						print_r($sword);
						echo(" ");
					}
				}
			}else{
				foreach ($words as $id => $word){
					if (!$this->stopword($word, 3)){
						$sword = CEsStemmer::Stem($word);
						$stem_words[] = $sword;
						print_r($sword);
						echo(" ");
					}
				}
			}
			exit;
			if($model->validate())
			{
				$headers="From: {$model->email}\r\nReply-To: {$model->email}";
				mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers);
				Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
				$this->refresh();
			}
		}
		$this->render('result',array('model'=>$model));
		//$this->redirect('result');
	}
	/**
	 * Logs out the current user and redirect to homepage.
	 */
	public function actionLogout()
	{
		Yii::app()->user->logout();
		$this->redirect(Yii::app()->homeUrl);
	}
	
	protected  function limpaTexto($txt)
	{
		$beta=array(
				'a','a','a','a','a',
				'e','e','e','e',
				'i','i','i','i',
				'o','o','o','o','o',
				'u','u','u','u','c',
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," "," "," ",
				"","","","","",
				"","","","","",
		);
		$alfa=array(
				'á','à','ã','â','ä',
				'é','è','ê','ë',
				'í','ì','î','ï',
				'ó','ò','õ','ô','ö',
				'ú','ù','û','ü','ç',
				"\"","'","!","@","#",
				"$","%","&","*","(",
				")","+","}","]","=",
				"º","§","{","[","ª",
				"?","/","°","<",">",
				"\\","|",",",".",";",
				":","~","^","´","`","_",
				'0','1','2','3','4',
				'5','6','7','8','9'
		);
	//	print_r("<br>.........chegou.......1:".$txt);		
		//$gama = strtolower($txt);
	//	print_r("<br>.........lower...2:".$gama);
		//$omega=str_replace($alfa,$beta,$gama);
	//	print_r(strtolower($txt));
		$omega=str_replace($alfa,$beta,$txt);
	//	print_r($omega. ":.....replace...........3");
		$pi=strip_tags($omega);
		$omega=stripcslashes($pi);
		return($omega);
	}
	protected  function limpaTexto2($txt)
	{
		$beta=array(
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," ",
				" "," "," "," "," "," "," ",
				"","","","","",
				"","","","","",
		);
		$alfa=array(				
				"\"","'","!","@","#",
				"$","%","&","*","(",
				")","+","}","]","=",
				"º","§","{","[","ª",
				"?","/","°","<",">",
				"\\","|",",",".",";",
				":","~","^","´","`","_",
				'0','1','2','3','4',
				'5','6','7','8','9'
		);
			
		$gama = strtolower($txt);		
		$omega=str_replace($alfa,$beta,$gama);				
		$pi=strip_tags($omega);
		$omega=stripcslashes($pi);
		return($omega);
	}
	
	protected  function stopword($word, $l)
	{
		switch ($l):
			case 2:{
			$list = "a do acima ainda algo algum alguma algumas alguns alguém ambas ambos ao aos ao às apesar após aquela aquele aqueles aquilo as assim até à 
					 cada caso cerca certa certo certos com como conforme contanto contra contudo cujo cujos da daquela daquelas daquele daqueles daquilo das 
					 de dela delas dele deles demais desde dessa dessas desse desses desta destas deste destes devido diante disso dissonante diversas diversos 
					 do dos dourada e ela elas ele eles em embora enquanto entanto entre entretanto então essa essas esse esses esta estas este estes exceto há 
					 isso isto lhe lhes libre la las lo los mais mas me menos mesma mesmas mesmo mesmos meu meus mim minha minhas modo monte muita muitas muito muitos 
					 na nada nas né nem nenhum nenhuma nessa ninguém no nos nossa nossas nosso nossos num numa não nós o obstante onde os ou outra outras outro outros 
					 para pela pelas pelo pelos per perante pois por porque porquê portanto porém posto poucas pouco poucos pousada pra prá própria próprias próprio 
					 próprios quais qual qualquer quando quantas quanto quantos quase que quem quer quê salvo se segundo sem sempre sendo sentido senão ser serpente 
					 seu seus si sob sobre soda sua suas tais tal tanta tantas tanto tantos te teu teus ti toda todas todo todos tudo um uma umas vos uns vez você 
					 vocês vossa várias vários vós sido sendo tido tendo havido havendo";
			$stop_words = explode(" ", $list);
			break;
			}
			case 1:{
				$stop_words = array("about", "above", "after", "all", "alone", "also", "am", "and", "as", "at", "because", "before", "beside", "besides", "between", "but", "by", 
						"etc", "for", "i", "of", "on", "other", "others", "so", "than", "that", "though", "to", "too", "trough", "until", "me",
						"the",  "a", "an", "in", "is" , "it", "you", "your", "yours", "this", "with", "are", "have", "be", "at", "or",
                         "was", "so", "if", "out", "not", "my", "myself");
				break;
			}
			case 3:{
				$list = "saber sabes  ser si siendo sin sobre sois solamente solo somos soy su sus también teneis tenemos tener tengo tiempo tiene tienen todo trabaja 
						trabajais trabajamos trabajan trabajar trabajas trabajo tras tuyo ultimo un una unas uno unos usa usais usamos usan usar usas uso va vais valor vamos 
						van vaya vosotras vosotros voy yo";				
				$stop_words = explode(" ", $list);
				break;
			}
		endswitch;
		
		 if(in_array($word, $stop_words)) {
		 			 	return(true);
		 }else{
		 	return(false);		 	
		 }
		 
	}
	
	
	protected  function bacalho()
	{
		
		$words = Yii::app()->db->createCommand()
		->select('w.id, word, name, lang')
		->from('tbl_word w')
		->join('tbl_emotion e', 'e.id=w.emotion_id')
		->queryAll();
		
		foreach ($words as $id => $word){
			if ($word['lang']== 'EN'){
				$sword= CPorterStemmer::Stem($word['word']);

			}else{
				$sword = CPtPorterStemmer::Stem($word['word']);	
			}
				
			$command = Yii::app()->db->createCommand();
			$command->update('tbl_word', array(
					'lemma'=>$sword,
			), 'id=:id', array(':id'=>$word['id']));
			print_r($sword);
			echo("  ");
		}
		/*
		Yii::app()->db
		->createCommand("UPDATE list SET Status = 'R' WHERE ListId=:ListId OR RListID=:RListID")
		->bindValues(array(':ListId' => $_POST['ListId'], ':RListID' => $_POST['RListId']))
		->execute();*/
	}
}

